home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 19
/
Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso
/
Aminet
/
comm
/
cnet
/
gu40pack.lha
/
gu40pack
/
GU40_Intro
< prev
next >
Wrap
Text File
|
1997-03-21
|
15KB
|
291 lines
============================================================================
The Complete GETUSER List for CNet Amiga, v3.05c & v4.26+!
Written & Compiled by Dotoran of Frontiers!
$VER: CNet GetUser List, v4.02 (19-Mar-97) by Dotoran!
============================================================================
Welcome to the newest installment of the GETUSER List Package for CNet
Amiga! This time, for CNet Amiga, v4.26+!
Being as Peter Klein, aka PMK, has officially left the Amiga scene, it
has taken me awhile to reestablish the will and want to continue with the
updating of this list. I'd like to thank Peter for all his help in the past.
He will be VERY SORELEY missed by us all in the CNet Amiga community!
I would also like to thank the NEW owners and developers of CNet Amiga,
without whom I wouldn't have a program to create such a list FOR! Thanks to
Todd H. Knight and Ray Akey!
I'd also like to publically acknowledge the following individuals which
have helped in the testing, locating, and explaining of some of the NEW values
listed in this version: Ray Akey, Kelly Cochran (aka Trolan), Dave Cook (aka
Dave_C), and Pieter Hollants (aka Fate_1oo%). There are most probably others,
but their names escape me right now. Thanks again guys!
Alright, with the acknowledgements out of the way, let's take a look at
what you should have received in this Archive. There are four major TEXT
files which should have been included:
GU40_Intro ------> The file you are presently reading! :-)
GU40_Shorts -----> Lists the 102 Short, Decimal GetUser Values, as well
as a discussion on the proper usage of LOADSCRATCH!
GU40_Longs ------> Lists ALL Known 7-Digit GetUser Values, for MANY of
the internal structures used in CNet Amiga!
GU40_PrivINFO ---> A text file explaining exactly how to work with the
CNet Amiga Priviledge Flags, including examples!
GU40_Coders -----> This document includes the "heavy" discussion on how
to glean data from structures that do NOT have easy
GetUser defines for them.
OFFSET_Scanner --> ARexx Program that lets you peak "behind the scenes"
of your CNet Amiga, and search out any possible NEW
GetUser Values!
GetUserChecker --> This program allows you to check the VALIDITY of any
of the SHORT GetUser values. It shows you which values
work with GetUser and which work with GetScratch. Some
of the values DON'T do what they SAY they do, so this
file is a great help in FINDING these oddities!
GetUserReader ---> This program gives you a command that allows you to
view the contents of ANY GetUser value from ANYWHERE
(and ANY PROMPT) within your System. You also have
the ability of specifying HOW you wish to view the
contents: Decimal, Hexadecimal, Binary, or CHAR!
GetUserSearch -> An OnLine CNet GetUser Database. Type a search term,
then let this program FIND and DISPLAY ONLY those
GetUser values that CONTAIN this search text. With
multiple command settings, this file will find a use
on almost ALL "inspired" CNet BBS's!
The "short" GetUser values are probably the EASIEST GetUser Values to
use, and are fully explained at the end of the "GU40_Shorts" file, so will
NOT be discussed here. This will save us a FEW lines in this file! :-)
The first GetUser List I ever published for CNet Amiga was for the v2.61
of CNet. This was the first STABLE listing to be published since the v2.42e
version, so at the time it was REALLY needed. When I started that list, one
of my LARGEST sources was a GetUser listing put out by Shawn McNeece that
had over 800 codes on it. This earlier listing contained something that MY
initial efforts did NOT, and that was the inclusion of many of the OTHER
CNet C structures, besides the MainPort, UserData, and PortData structures.
You can grab virtually ANY piece of data from the CNet strutures,
PROVIDED we know two things:
1: Where to LOOK within CNet.
2: How to EXTRACT the data.
With copies of the "#?.h" header files readily avilble, I was able to
accomplish the first step, while the second step took a bit more time. In
previous lists, all one needed to do was issue a GETUSER command to receive
a piece of data that was useable immediately. This was NOT the case, however,
with a lot of the NEW Values we came across, like the Priviledges, Pointers,
Arguments, etc.
To fully accomplish this second step, I had to experiment with different
formulas, commands, or a combination of both in order to get data that had
some form of MEANING. In other words, what I have done is to GIVE YOU these
formulas, etc. so that YOU can then simply apply the needed values to get
the data in USABLE form. You'll find these formulas within the listings, or
included in one or more of the included TEXT files, so please take the time
to at least SCAN the material in these files. By doing this, you will then
have an "inkling" if you recalled seeing a piece of info you could use. You
can then go back and search the files to find the EXACT information.
Here's a breakdown of what I've learned thus far about the 7-Digit
GetUsers(also called "long" or "5-digit" GetUsers):
ABCCCCC
||~~|~~
|| `----> Five-Digit OffSet from START of "C" Structure.
||
|`-------> Variable Type(1=Char,2=Short,3=Char,4=Long,5=Date,6=Pointer)
|
`--------> 1=PortData (including UserData), 2=MainPort Structure,
3=PortDataExtension block, or 4=MainPortExtension block.
The "A" value determines from which Structure we'll be getting the data
from. Normally, if the data pertains to an individual user, this number will
be a "1" (or "3"), while if it pertains to the bbs, it'll be a "2" (or "4").
The "B" value determines what KIND of variable we're dealing with, and
will ALWAYS be one of the following:
1 : Byte (A Number or Char. Ranging from 0 to 255) (8 Bit, 1 Byte)
2 : Short (A Number Ranging from 0 to 256^2) (16 Bit, 2 Bytes)
3 : Char (Text, like a UserName, etc.) (No PreDefined Length)
4 : Long (A Number Ranging from 0 to 256^4) (32 Bit, 4 Bytes)
5 : Date (In Expanded Format) (6 Bytes)
6 : Pointer (Can Return ANY of the Above Codes) (4 Bytes)
The "C" value determines how far from the START of a particular structure
this piece of data can be found. What makes locating these values tough is
that some of the structures are nested within other structures. This means
that not only do you need to find the offset, or start position, within the
structure you're interested in, but you must also be aware of the offset of
the structure itself, within the parent structure. If this sounds confusing,
believe me, you're NOT alone! hehe ;-)
============================================================================
To finish this Introduction, let's take a look at each TYPE of GetUser
value, in terms of additional information you might find helpful. Each type
is generally associated with one or more "keywords", which you will see all
throughout the different header files. This info may help you in determining
what Type of variable you want to use:
x1xxxxx's (Header keywords: BYTE, UBYTE, CHAR)
- A Number or Character Value between 0 and 255.
- Value is an 8-bit number, taking up 1 byte of space.
----------------------------------------------------------------------------
x2xxxxx's (Header keywords: SHORT, USHORT)
- A Numeric Value between 0 and 65,536.
- Value is a 16-bit number, taking up 2 bytes of space.
----------------------------------------------------------------------------
x3xxxxx's (Header keywords: CHAR, STRING)
- A text string with a variable length.
- In most cases, the variable's length is given in the Header file.
- On the GetUser Listing, the Length is given in []'s AFTER the Value.
----------------------------------------------------------------------------
x4xxxxx's (Header keywords: LONG, ULONG)
- A Numeric Value between 0 and 4,294,967,295.
- Value is a 32-bit number, taking up 4 bytes of space.
- Use "NUMERIC DIGITS 10" before any computations you plan on performing
on a 32-bit number, unless you plan to SPLIT the number, as shown next.
- By changing the "4" into a "2", these values can be alternately read
as two 16-bit numbers. Increase Second Value by 2, as shown below:
1400472 <--oo--> Increase Additional Value by 2.
Change 4 Into 2 <--| ||
\|/ ||
1200472 <--'|
1200474 <---'
^
----------------------------------------------------------------------------
x5xxxxx's (Header keywords: ISDATE, STRUCT)
- Returns Dates in Expanded "Wed 19-Mar-1997 6:58p" Format.
- All Date Values take up 6 bytes of space.
- By changing the "5" into a "1", and Incrementing each Additional Value
by 1, you can extract the following 6 pieces of information from the
Date stored at this location:
1500410 --> Returns: "Fri 6-Aug-1965 12:00a" (My Birthdate)
1100410 --> Returns: "65" (Last two digits of YEAR)
1100411 --> Returns: "8" (Number of the MONTH)
1100412 --> Returns: "6" (Number of the DAY)
1100413 --> Returns: "0" (Number of the HOUR)
1100414 --> Returns: "0" (Number of the MINUTE)
1100415 --> Returns: "42" (Number of the SECONDS)
----------------------------------------------------------------------------
x6xxxxx's (Header keywords: STRUCT, POINTER, BPTR)
- Pointers take up 4 bytes of space.
- Pointers point to the START of a structure's data, as found in the
CNet Memory Map. These pointers are a bit tough to work with, which
is why you should be fairly FLUENT in ARexx, before attempting to
manipulating any of these values.
----------------------------------------------------------------------------
In conclusion, I'd like to share a bit of the future with you all. Ray
and I have been talking about these long offset values for a LONG time, and
Ray's been trying to figure out a way to make USING them a LOT easier, both
for US as well as for HIM. The constant restrictions we put him under having
to do with these getuser values is holding Ray back from seriously being
able to expand upon the firm base in CNet that he's already founded.
In a future version of CNet, Ray will be implementing a Tag Server system
of using these values. Here's an example of how this might work:
Current GetUser Possible TagName
================= ==================
1500000 Current Date & Time 15_Today
1200012 Account Number of User Online 12_id
1600040 Access Group Name of Current User 16_AName
1400064 Which Caller Number Am I? 14_Caller
1300374 Organization Line of User Online 13_Organ
1100446 Access Group of User Online 11_Access
The above will give you an idea of how the tags MIGHT look in this FUTURE
version of CNet Amiga. You'll note that the tags START with the SAME two
digits as the current GetUser values. These digits can tell CNet WHICH of
the structures to look into, as well as what TYPE of data the variable should
be read in as.
How the tags will be USED is yet to be seen. I believe I recall Ray saying
something like using "GD" (possibly for GetData), so you'd use:
gd 15_Today instead of gu 1500000
This method of obtaining variable values will be VERY nice for THREE big
reasons that I can see already:
1. Using the descriptive word in the tag will make it easier to figure out
what it was you were trying to read in.
2. Programmers of "C" will have an easier time in the CONVERSION of existing
ARexx files INTO the "C" language, as they'll be able to gleen the info
they'll need in THEIR variable initializations.
3. Because the Tag Server will be responsible for locating the data once it
receives a tagname, Ray will then have the freedom to further expand upon
the data structures, WITHOUT having to worry about creating another of the
dreaded "getuser shifts" which has caused numerous problems in the past!
Ray's only major qualm with this idea being that once implemented, it
will mean that ALL existing ARexx program files will be rendered useless. I
have already told Ray, and I am telling you ALL now, that I have offered to
create a utility which will have the ability of reading in an existing ARexx
file and CONVERTING usages of GETUSER, GETSCRATCH, PUTUSER, and PUTSCRATCH
into the corresponding tagnames.
We'll be bound to be hearing more about this new system as Ray's date of
implementation grows nearer. WHEN this date will come is for RAY to know at
this time. Please don't badger him about the issue. It's the TURNING point
we'll need to fully unleash Ray onto the code! ;-)
----------------------------------------------------------------------------
That's all there is to this introductions. If you have ANY questions
regarding ANYTHING in this Introduction, or with ANY of the information in
ANY of the files included with this package, PLEASE do not hesitate to
contact me for further guidance!
And that, my friends, is the END of this introduction!
- Dotoran
============================================================================
Dotoran(David Weeks) - Frontiers BBS - (716)/823-9892 (USA)
- FidoNet Network - 1:260/121.0
- CLink Network - 911:6840/2.0
- Internet's WWW - http://www.bluemoon.net/~dotoran
- Internet's EMAIL - dotoran@bluemoon.net
============================================================================